// ajax 封装

var Ajax = function(url, type, success, error) {

        $.ajax({
            url: url,
            type: type,
            dataType: 'json',
            timeout: 10000,
            success: function(d) {
                var data = d.data;
                success && success(data);
            },
            error: function(e) {
                error && error(e);
            }
        })
    }
    // 使用方法
Ajax('/data.json', 'get', function(data) {

    console.log(data);
});


// jsonp

function jsonp(config) {

    var options = config || {};
    var callbackName = ('jsonp_' + Math.random()).replace(".", "");
    var oHead = document.getElementsByTagName('head')[0];
    var oScript = document.createElement('script');
    oHead.appendChild(oScript);
    window[callbackName] = function(json) { // 创建jsonp 回调
        oHead.removeChild(oScript);
        clearTimeout(oScript.timer);
        window[callbackName] = null;
        options.success && options.success(json); // 先删除script
    };
    oScript.src = options.url + '?' + callbackName; // 发送请求
    if (options.time) { // 设置超时处理
        oScript.timer = setTimeout(function() {
            window[callbackName] = null;
            oHead.removeChild(oScript);
            options.fail && options.fail({ message: '超时' });
        }, options.time);
    }
}

// 使用方法
jsonp({
	url: '/b.com/b.json',
	success: function(d){
		// 数据处理
	},
	time: 5000,
	fail : function(){
		//错误处理
	}
});

// 指定允许其他域名访问
header('Access-Control-Allow-Origin:*');

// 响应类型
header('Access-Control-Allow-Methods:POST');

// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');

// json 跨域
function login() {
    $.ajax({
        type: 'post',
        data: {
            user: $('#user').val(),
            pwd: $.md5($('#pwd').val()),
            check: $('#check').val()
        },
        url: Allen.main.getConfig('root') + '/login',
        dataType: 'json',
        xhrFields: { // 重要
            withCredentials: true
        }
        success: function(obj) {
            if (obj.success) {
                location.href = 'pages/main.html';
                alert('您已经登陆成功');
            } else if (obj.msg) {
                Allen.main.getCheck();
                alert(obj.msg);
            }
        }
    })
}
